package org.example.thread;

public class Demo5 {

    int count = 0;
    // 同步方法, 锁定的是当前对象
    public synchronized void add(){
        count++;
    }

    public static void main(String[] args) throws InterruptedException {
        Demo5 demo5 = new Demo5();
        for (int i = 0; i < 10; i++) {
            if(i % 2 == 0){
                new Thread(()->{
                    // 执行同步代码块, 锁定 demo5 对象
                    for (int j = 0; j < 1000; j++) {
                        synchronized (demo5) {
                            demo5.count++;
                        }
                    }
                }).start();

            } else {
                new Thread(()->{
                    for (int j = 0; j < 1000; j++) {
                        // 调用同步方法
                        demo5.add();
                    }
                }).start();
            }

        }

        Thread.sleep(1000);
        System.out.println(demo5.count);
    }
}
